package com.itc.system.api;

import com.itc.common.core.constant.SecurityConstants;
import com.itc.system.api.factory.FlightOperationFactory;
import org.springframework.cloud.openfeign.FeignClient;
import com.itc.common.core.constant.ServiceNameConstants;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestHeader;

@FeignClient(contextId = "FlightOperationService", value = ServiceNameConstants.DISPATCH_SERVICE
        , fallbackFactory = FlightOperationFactory.class)
public interface FlightOperationService {

    /**
     * 宽表api接口数据定时任务触发
     */
    @GetMapping(value = "/dispatchFeign/monitor/data/update")
    void monitorDataUpdate(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);

    /**
     * 预测起飞api接口数据定时任务触发
     */
    @GetMapping(value = "/dispatchFeign/ptd/data/update")
    void ptdDataUpdate(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);

    /**
     * 时隙交换航班信息同步
     */
    @GetMapping(value = "/dispatchFeign/time/slot/exchange")
    void timeslotExchange(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);

    /**
     * 告警规则触发逻辑
     */
    @GetMapping(value = "/dispatchFeign/alarm/trigger")
    void alarmTrigger(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);

    /**
     * OA部门用户信息同步
     */
    @GetMapping(value = "/dispatchFeign/oa/data/update")
    void oaDeptUserDataUpdate(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);

    /**
     * AOC排班信息同步
     */
    @GetMapping(value = "/dispatchFeign/aoc/schedule/update")
    void aocScheduleUpdate(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
}
